//
//  NSString+LZExtension.h
//  Project_D
//
//  Created by Liu Zhao on 2016/10/27.
//  Copyright © 2016年 Liu Zhao. All rights reserved.
//

#import <Foundation/Foundation.h>

/**
 判断字符串为空或者为空字符串
 @param str : 要判断的字符串
 @return 返回BOOL表示结果
 */
UIKIT_STATIC_INLINE BOOL StringIsNullOrEmpty(NSString* str)
{
    return (![str isKindOfClass:[NSString class]] || str == nil || [str isEqualToString:@""] || str.length == 0);
}
/**
 判断字符串不为空并且不为空字符串
 @param str : 要判断的字符串
 @return 返回BOOL表示结果
 */
UIKIT_STATIC_INLINE BOOL StringNotNullAndEmpty(NSString* str)
{
    return (str != nil && [str isKindOfClass:[NSString class]] && ![str isEqualToString:@""] && str.length > 0);
}

@interface NSString (LZExtension)

// 获取Documents路径
+ (NSString *)documentPath;

// 获取缓存路径
+ (NSString *)cachePath;

/// 小写第一个字母
- (NSString *)lowercaseFirstCharacter;
/// 大写第一个字母
- (NSString *)uppercaseFirstCharacter;

/// 判断是否空字符
- (BOOL)stringIsNullOrEmpty:(NSString *)str;

- (BOOL)isValidEmail;
- (BOOL)isValidPhoneNumber;

//! bundle下根据文件名返回路径
+ (NSString *)bundlePathWithFileName:(NSString *)fileName;
+ (NSString *)bundlePathWithFileName:(NSString *)fileName ofType:(NSString *)type;

//获取某固定文本的显示高度
+(CGRect)heightForString:(NSString*)str Size:(CGSize)size Font:(UIFont*)font;

+(CGRect)heightForString:(NSString*)str Size:(CGSize)size Font:(UIFont*)font Lines:(NSInteger)lines;

// 计算CGSize
+ (CGSize)boundingRectWithText:(NSString *)text font:(UIFont *)font size:(CGSize)size;
+ (CGSize)boundingRectWithText:(NSString *)text font:(UIFont *)font size:(CGSize)size lineSpace:(CGFloat)space
;

/**
 根据width计算文本高度

 @param text 文本
 @param width 长度
 @param font 字体
 @return 浮点类型
 */
+ (CGFloat)getHeightWithText:(NSString *)text width:(CGFloat)width font:(UIFont *)font;

/**
 根据width计算文本高度

 @param text 文本
 @param width 长度
 @param font 字体
 @param space 间距
 @return 浮点类型
 */
+ (CGFloat)getHeightWithText:(NSString *)text width:(CGFloat)width font:(UIFont *)font lineSpace:(CGFloat)space;


#pragma mark - ZPM
+ (NSString*)getShowTime:(NSTimeInterval) msglastTime showDetail:(BOOL)showDetail;

@end
